package contatos.patterns.chainofresponsbility;

import contatos.model.Contato;

/**
 * Esse handler identifica se o DDD de um contato é de RJ.
 * DDDs RJ:
 * <ul>
 *  <li>21</li>
 *  <li>22</li>
 *  <li>24</li>
 * </ul>
 * 
 * @author felipe
 * @see AbstractTelefoneHandler
 */
public class RJHandler extends AbstractTelefoneHandler {

    @Override
    public boolean accept(String telefone) {
        return (telefone.startsWith("21")
                || telefone.startsWith("22")
                || telefone.startsWith("24"));
    }

    @Override
    public void doHandle(Contato pessoa) {
        pessoa.setUf("RJ");
        int telefone = Integer.parseInt(pessoa.getTelefone().substring(2, 4));
        if (telefone >= 96 && telefone <= 99) {
            pessoa.setOperadora("VIVO");
        } else if (telefone >= 91 && telefone <= 94) {
            pessoa.setOperadora("CLARO");
        } else if (telefone >= 86 && telefone <= 88) {
            pessoa.setOperadora("OI");
        } else if (telefone >= 80 && telefone <= 83) {
            pessoa.setOperadora("TIM");
        }

    }

}
